# Что делает функция asyncio.run(coro)?
# Запускает корутину в цикле событий и закрывает цикл после завершения.

# Что возвращает функция asyncio.create_task(coro)?
# Новый объект Task, оборачивающий корутину

# Какой метод позволяет одновременно запустить несколько awaitable объектов?
# asyncio.gather()
#Какой будет вывод этого кода?
# import asyncio

# async def foo():
#     await asyncio.sleep(1)
#     return 'foo'

# async def bar():
#     await asyncio.sleep(2)
#     return 'bar'

# async def main():
#     results = await asyncio.gather(foo(), bar())
#     print(results)

# asyncio.run(main())

# Выводит ['foo', 'bar']
#Какой будет вывод этого кода?
# import asyncio

# async def do_work():
#     await asyncio.sleep(1)
#     print("Задача выполнена")

# async def main():
#     task = asyncio.create_task(do_work())
#     await asyncio.sleep(0.5)
#     task.cancel()
#     try:
#         await task
#     except asyncio.CancelledError:
#         print("Задача отменена")

# asyncio.run(main())
#Выводит "Задача отменена"